package com.itdachang.design.behavioral.interpreter;

import java.util.Set;

/**
 * @author gcq
 * @create 2022-02-15
 */
public class TerminalExpression extends IDCardExpression {
    /**
     * 免费数据
     */
    Set<String> data;

    /**
     * 定义解析用的符号 : -
     */
    String symbol;

    public TerminalExpression(Set<String> data, String symbol) {
        this.data = data;
        this.symbol = symbol;
    }

    @Override
    boolean interpret(String expression) {
        // 1、先按照指定符号分割
        String[] split = expression.split(symbol);

        // 冒号  上海市          张文武-医生
        // 短横线 上海市:张文武    医生
        boolean result = false;
        for (String s : split) {
            // 说明是免费信息里面的
            if (data.contains(s)) {
                return true;
            }
        }

        // 不再免费行列
        return false;
    }
}